package com.crayon2f.test.kindle;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class HtmlTitleExtractor {

    public static void main(String[] args) {
        // 设置你的 HTML 文件所在目录，可以修改为你的实际路径
        String directoryPath = "D:\\download\\lose-lover"; // 当前目录下的 html_files 文件夹，或使用绝对路径如 "C:/htmls/"

        File dir = new File(directoryPath);

        if (!dir.exists() || !dir.isDirectory()) {
            System.err.println("指定的目录不存在或不是一个目录: " + directoryPath);
            return;
        }

        try (Stream<Path> paths = Files.walk(Paths.get(directoryPath))) {
            paths
                    .filter(Files::isRegularFile)                     // 只处理文件，不处理文件夹
                    .filter(path -> path.toString().endsWith(".html")) // 只处理 .html 文件
                    .forEach(path -> {
                        File htmlFile = path.toFile();
                        try {
                            // 使用 Jsoup 读取 HTML 文件
                            Document doc = Jsoup.parse(htmlFile, "UTF-8");

                            // 查找 <p class="calibre_13"> 元素
                            Elements titleElement = doc.select("p.calibre_13");

                            String titleText = "";
                            if (titleElement != null) {
                                titleText = titleElement.text().trim(); // 获取文本并去除首尾空格
                            } else {
                                titleText = "[未找到 calibre_13 标题]";
                            }

                            // 输出：文件名：标题文本
                            System.out.println(htmlFile.getName() + "：" + titleText);

                        } catch (IOException e) {
                            System.err.println("读取文件出错: " + htmlFile.getName() + "，错误: " + e.getMessage());
                        }
                    });
        } catch (IOException e) {
            System.err.println("遍历目录出错: " + e.getMessage());
        }
    }
}